pi-openui 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +27 -60
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.1.1 (2026-10-30)
|
|
6
|
+
|
|
7
|
+
- The README now renders on pi.dev and npm: screenshots are markdown images (pi.dev drops raw HTML tables and images) and
|
|
8
|
+
links to the documentation are absolute (pi.dev rewrote the relative ones to a CDN copy of the package, which has no `docs/`).
|
|
9
|
+
Nothing changes in the extension.
|
|
10
|
+
|
|
5
11
|
## 0.1.0 (2026-10-30)
|
|
6
12
|
|
|
7
13
|
- **Notes.** Pin a comment to a table cell, node, slice, point or paragraph; the notes go into pi's message box as one numbered
|
package/README.md
CHANGED
|
@@ -6,22 +6,9 @@ coding agent. The agent writes a few lines of OpenUI Lang. pi draws a widget you
|
|
|
6
6
|
It uses unicode characters, and real pictures where the terminal can show them. There is no browser, no HTML, no runtime
|
|
7
7
|
dependency and no network access.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<td valign="top"><img src="docs/screenshots/dag-tooltip.png" width="360" alt="A CI pipeline graph with a focused node, a hint bubble and its tooltip panel"></td>
|
|
13
|
-
</tr>
|
|
14
|
-
<tr>
|
|
15
|
-
<td valign="top"><img src="docs/screenshots/infra.png" width="440" alt="An infrastructure map with three zones"></td>
|
|
16
|
-
<td valign="top"><img src="docs/screenshots/image-tooltip.png" width="360" alt="A picture in a frame with a tooltip bubble"></td>
|
|
17
|
-
</tr>
|
|
18
|
-
<tr>
|
|
19
|
-
<td valign="top"><img src="docs/screenshots/notes-tray.png" width="440" alt="Two notes pinned on a table, with a tray listing them"></td>
|
|
20
|
-
<td valign="top"><img src="docs/screenshots/markdown-image.png" width="360" alt="A README-style view: one markdown with a picture between its paragraphs"></td>
|
|
21
|
-
</tr>
|
|
22
|
-
</table>
|
|
23
|
-
|
|
24
|
-
<sub>Screenshots are drawn by `npm run screenshots` from the widget's real output, with pi's dark theme and JetBrains Mono.</sub>
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
*Screenshots are drawn by `npm run screenshots` from the widget's real output, with pi's dark theme and JetBrains Mono.*
|
|
25
12
|
|
|
26
13
|
## What you get
|
|
27
14
|
|
|
@@ -29,18 +16,18 @@ dependency and no network access.
|
|
|
29
16
|
numbers, so it fixes them and tries again. After a successful draw it says one short sentence.
|
|
30
17
|
- **23 components.** Layout and text, metric tiles, tables, tabs, buttons and choices, FAQ, markdown, code with
|
|
31
18
|
highlighting and a copy button, images, bar, line, area, pie and radar charts, a world map, and four diagram types
|
|
32
|
-
(DAG, ER, infrastructure map, sequence). See the [component gallery](docs/components/README.md).
|
|
19
|
+
(DAG, ER, infrastructure map, sequence). See the [component gallery](https://github.com/newtonapple/pi-openui/blob/main/docs/components/README.md).
|
|
33
20
|
- **Interaction.** Click, or use Tab, the arrow keys, Enter and Esc. A button or a choice sends text to the agent as your next
|
|
34
|
-
message. See [docs/interaction.md](docs/interaction.md).
|
|
21
|
+
message. See [docs/interaction.md](https://github.com/newtonapple/pi-openui/blob/main/docs/interaction.md).
|
|
35
22
|
- **Notes.** Pin a comment to a table cell, a graph node or a pie slice, then send all of them to the agent as one numbered
|
|
36
23
|
message. You read and edit the message before it goes. See [Notes](#notes).
|
|
37
24
|
- **Tooltips.** An element with a tooltip shows a small `◆`. Hover for a hint bubble, click or press Enter for a panel with
|
|
38
|
-
detail, code and a link. See [Tooltip](docs/components/Tooltip.md).
|
|
25
|
+
detail, code and a link. See [Tooltip](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Tooltip.md).
|
|
39
26
|
- **Pictures.** An `Image` draws the real picture in terminals that speak the Kitty graphics protocol, inside a frame that
|
|
40
27
|
can carry a tooltip. A line of Markdown that is only a picture, ``, is drawn the same way, so a
|
|
41
|
-
README-style view is one `Markdown`. See [Image](docs/components/Image.md) and [Markdown](docs/components/Markdown.md).
|
|
28
|
+
README-style view is one `Markdown`. See [Image](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Image.md) and [Markdown](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Markdown.md).
|
|
42
29
|
- **Robust diagrams.** Every graph, schema and map is routed on a character grid with one wire per edge. The tests decode
|
|
43
|
-
the finished picture back into its edges and compare them with the input. See [docs/diagrams.md](docs/diagrams.md).
|
|
30
|
+
the finished picture back into its edges and compare them with the input. See [docs/diagrams.md](https://github.com/newtonapple/pi-openui/blob/main/docs/diagrams.md).
|
|
44
31
|
|
|
45
32
|
## Install
|
|
46
33
|
|
|
@@ -63,7 +50,7 @@ and run `/openui-gallery`. It needs pi 1.4 or newer.
|
|
|
63
50
|
| Remove | `pi remove npm:pi-openui` |
|
|
64
51
|
|
|
65
52
|
It is in pi's [package catalog](https://pi.dev/packages), which lists npm packages that carry the `pi-package` keyword. After an
|
|
66
|
-
update pi shows this package's [changelog](CHANGELOG.md). Maintainers: see [docs/releasing.md](docs/releasing.md).
|
|
53
|
+
update pi shows this package's [changelog](CHANGELOG.md). Maintainers: see [docs/releasing.md](https://github.com/newtonapple/pi-openui/blob/main/docs/releasing.md).
|
|
67
54
|
|
|
68
55
|
## Use it
|
|
69
56
|
|
|
@@ -85,56 +72,36 @@ The mouse needs pi's default fullscreen mode. Everything also works from the key
|
|
|
85
72
|
Pin a comment to one part of a widget, then send all your comments to the agent as a single message. Use it to say "this row
|
|
86
73
|
is wrong" or "explain this node" without describing where it is.
|
|
87
74
|
|
|
88
|
-
|
|
89
|
-
<tr>
|
|
90
|
-
<td valign="top"><img src="docs/screenshots/notes-dag.png" width="440" alt="A note pinned on a graph node, with the tray under the graph"></td>
|
|
91
|
-
<td valign="top">
|
|
75
|
+

|
|
92
76
|
|
|
93
77
|
1. Click `[ notes ]` under a widget, or run `/openui-notes`.
|
|
94
78
|
2. Click a cell, node, slice or paragraph, or Tab to it and press Enter. pi's own editor opens. Type, press Enter.
|
|
95
79
|
3. Click `[ Add 2 notes to your message ]`, or Tab to it and press Enter. The notes land in pi's message box as a numbered list.
|
|
96
80
|
4. Read it, edit it, press Enter. Nothing is sent before that.
|
|
97
81
|
|
|
98
|
-
</td>
|
|
99
|
-
</tr>
|
|
100
|
-
</table>
|
|
101
|
-
|
|
102
82
|
Each note names its target the way the agent wrote it, for example `tbl` (Table) > row 3, column `State`, so the agent can find
|
|
103
83
|
the line in its own source and answer by number. Words that come from the widget are cleaned before they reach your message,
|
|
104
84
|
so a widget cannot slip an `@file` reference or a code span into something you are about to send.
|
|
105
85
|
|
|
106
86
|
A widget holds 20 notes. They live in memory and are gone when the session ends. Keys, what each component lets you pick, and
|
|
107
|
-
the details are in [docs/interaction.md](docs/interaction.md#notes).
|
|
87
|
+
the details are in [docs/interaction.md](https://github.com/newtonapple/pi-openui/blob/main/docs/interaction.md#notes).
|
|
108
88
|
|
|
109
89
|
## Components
|
|
110
90
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
<td valign="top" width="25%"><a href="docs/components/LineChart.md"><img src="docs/screenshots/line.png" width="200" alt="LineChart"></a><br><sub>LineChart</sub></td>
|
|
115
|
-
<td valign="top" width="25%"><a href="docs/components/PieChart.md"><img src="docs/screenshots/pie.png" width="200" alt="PieChart"></a><br><sub>PieChart</sub></td>
|
|
116
|
-
<td valign="top" width="25%"><a href="docs/components/GeoMap.md"><img src="docs/screenshots/geo.png" width="200" alt="GeoMap"></a><br><sub>GeoMap</sub></td>
|
|
117
|
-
</tr>
|
|
118
|
-
<tr>
|
|
119
|
-
<td valign="top"><a href="docs/components/Erd.md"><img src="docs/screenshots/erd.png" width="200" alt="Erd"></a><br><sub>Erd</sub></td>
|
|
120
|
-
<td valign="top"><a href="docs/components/SequenceDiagram.md"><img src="docs/screenshots/sequence.png" width="200" alt="SequenceDiagram"></a><br><sub>SequenceDiagram</sub></td>
|
|
121
|
-
<td valign="top"><a href="docs/components/CodeBlock.md"><img src="docs/screenshots/code.png" width="200" alt="CodeBlock"></a><br><sub>CodeBlock</sub></td>
|
|
122
|
-
<td valign="top"><a href="docs/components/RadarChart.md"><img src="docs/screenshots/radar.png" width="200" alt="RadarChart"></a><br><sub>RadarChart</sub></td>
|
|
123
|
-
</tr>
|
|
124
|
-
</table>
|
|
125
|
-
|
|
126
|
-
All 23, with signatures, every argument, a checked example and tips: **[docs/components/](docs/components/README.md)**.
|
|
91
|
+

|
|
92
|
+
|
|
93
|
+
All 23, with signatures, every argument, a checked example and tips: **[docs/components/](https://github.com/newtonapple/pi-openui/blob/main/docs/components/README.md)**.
|
|
127
94
|
|
|
128
95
|
| Group | Components |
|
|
129
96
|
|---|---|
|
|
130
|
-
| Layout and text | [Stack](docs/components/Stack.md), [Text](docs/components/Text.md), [Card](docs/components/Card.md), [Callout](docs/components/Callout.md) |
|
|
131
|
-
| Data | [Metric](docs/components/Metric.md), [Table](docs/components/Table.md) |
|
|
132
|
-
| Interactive | [Tabs](docs/components/Tabs.md), [Button](docs/components/Button.md), [Choice](docs/components/Choice.md), [Faq](docs/components/Faq.md) |
|
|
133
|
-
| Rich content | [Markdown](docs/components/Markdown.md), [CodeBlock](docs/components/CodeBlock.md), [Image](docs/components/Image.md) |
|
|
134
|
-
| Charts | [BarChart](docs/components/BarChart.md), [LineChart](docs/components/LineChart.md), [AreaChart](docs/components/AreaChart.md), [PieChart](docs/components/PieChart.md), [RadarChart](docs/components/RadarChart.md) |
|
|
135
|
-
| Diagrams and maps | [Dag](docs/components/Dag.md), [Erd](docs/components/Erd.md), [InfraMap](docs/components/InfraMap.md), [SequenceDiagram](docs/components/SequenceDiagram.md), [GeoMap](docs/components/GeoMap.md) |
|
|
136
|
-
|
|
137
|
-
[Tooltip](docs/components/Tooltip.md) attaches to Dag, Erd, InfraMap, SequenceDiagram, Table, Metric, BarChart,
|
|
97
|
+
| Layout and text | [Stack](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Stack.md), [Text](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Text.md), [Card](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Card.md), [Callout](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Callout.md) |
|
|
98
|
+
| Data | [Metric](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Metric.md), [Table](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Table.md) |
|
|
99
|
+
| Interactive | [Tabs](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Tabs.md), [Button](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Button.md), [Choice](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Choice.md), [Faq](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Faq.md) |
|
|
100
|
+
| Rich content | [Markdown](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Markdown.md), [CodeBlock](https://github.com/newtonapple/pi-openui/blob/main/docs/components/CodeBlock.md), [Image](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Image.md) |
|
|
101
|
+
| Charts | [BarChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/BarChart.md), [LineChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/LineChart.md), [AreaChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/AreaChart.md), [PieChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/PieChart.md), [RadarChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/RadarChart.md) |
|
|
102
|
+
| Diagrams and maps | [Dag](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Dag.md), [Erd](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Erd.md), [InfraMap](https://github.com/newtonapple/pi-openui/blob/main/docs/components/InfraMap.md), [SequenceDiagram](https://github.com/newtonapple/pi-openui/blob/main/docs/components/SequenceDiagram.md), [GeoMap](https://github.com/newtonapple/pi-openui/blob/main/docs/components/GeoMap.md) |
|
|
103
|
+
|
|
104
|
+
[Tooltip](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Tooltip.md) attaches to Dag, Erd, InfraMap, SequenceDiagram, Table, Metric, BarChart,
|
|
138
105
|
LineChart, AreaChart, PieChart, RadarChart, GeoMap and Image.
|
|
139
106
|
|
|
140
107
|
## How it works
|
|
@@ -151,7 +118,7 @@ OpenUI Lang --parse--> typed tree --render--> blocks (rows of cells + click targ
|
|
|
151
118
|
- `src/diagram/` is the layout and routing engine for Dag, Erd and InfraMap.
|
|
152
119
|
- `src/pi/` is the pi extension: the tool, the commands, the themed component, mouse and keyboard handling, pictures.
|
|
153
120
|
|
|
154
|
-
More in [docs/design.md](docs/design.md).
|
|
121
|
+
More in [docs/design.md](https://github.com/newtonapple/pi-openui/blob/main/docs/design.md).
|
|
155
122
|
|
|
156
123
|
## Requirements
|
|
157
124
|
|
|
@@ -175,13 +142,13 @@ After you change the code, run `/reload` in pi. The rest:
|
|
|
175
142
|
```sh
|
|
176
143
|
npm test # a few seconds, no network, no model calls
|
|
177
144
|
npm run docs # regenerate docs/components/ from the signature table
|
|
178
|
-
npm run screenshots # regenerate docs/screenshots
|
|
145
|
+
npm run screenshots # regenerate docs/screenshots/, and the two README composites (needs Python with Pillow, and the font)
|
|
179
146
|
npm run gallery # print every component to the terminal (-- --plain for no colour)
|
|
180
147
|
make help # the release process (check, version, publish, tag, push)
|
|
181
148
|
```
|
|
182
149
|
|
|
183
|
-
Tests are described in [docs/testing.md](docs/testing.md). Releases are described in [docs/releasing.md](docs/releasing.md).
|
|
184
|
-
Contributors and agents working in this repository should read [AGENTS.md](AGENTS.md).
|
|
150
|
+
Tests are described in [docs/testing.md](https://github.com/newtonapple/pi-openui/blob/main/docs/testing.md). Releases are described in [docs/releasing.md](https://github.com/newtonapple/pi-openui/blob/main/docs/releasing.md).
|
|
151
|
+
Contributors and agents working in this repository should read [AGENTS.md](https://github.com/newtonapple/pi-openui/blob/main/AGENTS.md).
|
|
185
152
|
|
|
186
153
|
## Limits
|
|
187
154
|
|
|
@@ -194,7 +161,7 @@ Contributors and agents working in this repository should read [AGENTS.md](AGENT
|
|
|
194
161
|
saved at all.
|
|
195
162
|
- A widget has size limits (100 KB of source, 100 table rows, 60 graph nodes, 30 map nodes, and so on). Over a limit the
|
|
196
163
|
agent gets an error with the number and fixes it. They keep pi fast: it draws every widget on every frame. See the
|
|
197
|
-
[list](docs/components/README.md#size-limits).
|
|
164
|
+
[list](https://github.com/newtonapple/pi-openui/blob/main/docs/components/README.md#size-limits).
|
|
198
165
|
|
|
199
166
|
## License
|
|
200
167
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-openui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Pi extension: interactive dashboards, charts, diagrams and maps in the terminal. The agent draws with OpenUI Lang; you click, hover and pin notes.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"scripts": {
|
|
50
50
|
"test": "node --import ./test/register-pi.mjs --test --test-reporter=spec test/*.test.ts",
|
|
51
51
|
"gallery": "node scripts/langgallery.ts",
|
|
52
|
-
"screenshots": "node --import ./test/register-pi.mjs scripts/shots.ts && python3 scripts/render_shots.py",
|
|
52
|
+
"screenshots": "node --import ./test/register-pi.mjs scripts/shots.ts && python3 scripts/render_shots.py && python3 scripts/hero.py",
|
|
53
53
|
"docs": "node scripts/gen_docs.ts",
|
|
54
54
|
"prepublishOnly": "npm test"
|
|
55
55
|
}
|